/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package controle;

import java.sql.SQLException;
import java.util.List;
import javax.inject.Named;
import javax.enterprise.context.RequestScoped;
import modelo.PessoaBO;
import modelo.SetorBO;
import persistencia.PessoaDAO;
import persistencia.SetorDAO;

/**
 *
 * @author rodrigo
 */
@Named(value = "pessoaMB")
@RequestScoped
public class PessoaMB {

    private PessoaBO pessoaBO;
    private List<SetorBO> setores;
    private List<PessoaBO> pessoas;
    private PessoaDAO pessoaDAO;
    private SetorDAO setorDAO;

    public PessoaMB() throws SQLException {
        pessoaBO = new PessoaBO();
        pessoaBO.setStatus(1);
        pessoaDAO = new PessoaDAO();
        pessoas = this.listarPessoas();
        setorDAO = new SetorDAO();
        setores = this.setorDAO.listarSetores("Select * FROM setor");

    }

    public PessoaBO getPessoaBO() {
        return pessoaBO;
    }

    public void setPessoaBO(PessoaBO pessoaBO) {
        this.pessoaBO = pessoaBO;
    }

    public List<SetorBO> getSetores() {
        return setores;
    }

    public void setSetores(List<SetorBO> setores) {
        this.setores = setores;
    }

    public List<PessoaBO> getPessoas() {
        return pessoas;
    }

    public void setPessoas(List<PessoaBO> pessoas) {
        this.pessoas = pessoas;
    }

    public List<PessoaBO> listarPessoas() throws SQLException {
        return this.pessoaDAO.listarPessoas();
    }

    public String salvar() throws SQLException {
        int retorno;
        if (pessoaBO.getIdPessoa() > 0) {
            retorno = this.pessoaDAO.alterarPessoa(pessoaBO);
        } else {
            retorno = this.pessoaDAO.inserirPessoa(pessoaBO);
        }
        if (retorno == 0) {

            //erro
        }
        return "CadastrarPessoa";
    }

    public String editar(PessoaBO pessoaBO) throws Exception {

        this.pessoaBO = pessoaBO;
        return "CadastrarPessoa";
    }

    public void excluir(PessoaBO pessoaBO) throws SQLException {
        int retorno;
        retorno = this.pessoaDAO.excluirPessoa(pessoaBO);
        if (retorno > 0) {
            //excluido com sucesso.
        } else {
            //erro ao excluir
        }
        pessoas = this.listarPessoas();
    }
    
    public String novo() throws SQLException{
    pessoaBO = new PessoaBO();
    pessoas = this.listarPessoas();
        
    return "CadastrarPessoa";
    }
    

}
